home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Sunday Times: The Month 2003 December
/
The Sunday Times - The Month 2003-12.iso
/
mac
/
The Month DEC 03
/
engine
/
modules
/
tracks_hybrid.swf
/
scripts
/
frame_1
/
DoAction.as
Wrap
Text File
|
2003-11-10
|
12KB
|
460 lines
function loadImage(mc, node, extrapath)
{
var _loc3_ = extrapath;
_loc3_ != null ? 0 : (_loc3_ = "");
var strDefaultPath = Tardis.ASSETS_FOLDER + "images/" + Tardis.ActiveSection.id + "/";
var _loc1_ = node.firstChild.nodeValue;
var _loc2_ = node.attributes.path;
if(_loc2_ != null)
{
_loc1_ = _loc2_ + _loc1_;
}
else
{
_loc1_ = strDefaultPath + _loc3_ + _loc1_;
}
strPathPrefix != null ? 0 : (strPathPrefix = "");
mc.loadMovie(strPathPrefix + _loc1_);
}
function addLink(mc)
{
Links[mc.link] = mc;
}
function getMCfromLink(Item)
{
var _loc1_ = Item;
if(Links[_loc1_] == null)
{
var _loc2_ = [];
while(_loc1_ != sideMenu.ItemHome)
{
_loc2_.unshift(_loc1_._name.split("_").pop());
_loc1_ = _loc1_._parent._parent;
}
var _loc3_ = _loc2_.join("/");
Links[_loc1_] = Links[_loc3_];
}
return Links[_loc1_];
}
function removeLinkListener()
{
Tardis.sideMenu.EB.removeListener(this);
}
function init()
{
setColours();
parseContent(this.nodeData);
_visible = true;
playTrack(0);
}
function loadSampleContent(strName)
{
var _loc1_ = this;
trace("tracks_hybrid.loadSampleContent( " + strName + " )");
Tardis = {};
Tardis.ASSETS_FOLDER = "../../../../html/issue3/assets/";
Tardis.ActiveSection = {id:"music"};
_loc1_.xmlContent = new XML();
_loc1_.xmlContent.ignoreWhite = true;
_loc1_.xmlContent.onLoad = function(success)
{
trace("xmlContent.onLoad ( " + success + " ) ");
if(success)
{
nodeData = this.firstChild;
init();
}
};
_loc1_.xmlContent.load("sample_xml/" + strName + ".xml");
}
function interrupt()
{
trace("tracks_hybrid.interrupt()");
pauseTrack();
}
function resume()
{
trace("tracks_hybrid.resume()");
}
function setColours()
{
strColor = Tardis.Colors.getString(Tardis.ActiveSection.id);
strColor2 = Tardis.Colors.getString(Tardis.ActiveSection.id + "50");
SECTION_COLOR = Tardis.Colors.getHex(Tardis.ActiveSection.id);
SECTION_COLOR50 = Tardis.Colors.getHex(Tardis.ActiveSection.id + "50");
DEFAULT_COLOR = Tardis.Colors.getHex("default");
DEFAULT_COLOR50 = Tardis.Colors.getHex("default50");
mControls.txtTitle.textColor = SECTION_COLOR;
defaultColor = new Color(mc_buy_btn.arrowMC);
defaultColor.setRGB(SECTION_COLOR50);
}
function parseContent(xmlData)
{
trace("tracks_hybrid.parseContent()");
var _loc3_ = xmlData.childNodes;
var _loc2_ = 0;
while(_loc2_ < _loc3_.length)
{
var _loc1_ = _loc3_[_loc2_];
if(_loc1_.nodeName == "image")
{
loadImage(mc_cover,_loc1_);
}
else if(_loc1_.nodeName == "audioimage")
{
mc_image._visible = false;
loadImage(mc_image,_loc1_);
}
else if(_loc1_.nodeName == "title")
{
mControls.txtTitle.htmlText = _loc1_.firstChild.nodeValue;
}
else if(_loc1_.nodeName == "link")
{
parseLinkNode(_loc1_);
}
else if(_loc1_.nodeName == "tracks")
{
parseTracksNode(_loc1_);
}
_loc2_ = _loc2_ + 1;
}
}
function parseTracksNode(tracksNode)
{
trace("parseTracksNode()");
var arrTrackNodes = tracksNode.childNodes;
var strAudioTrackpath = Tardis.ASSETS_FOLDER + tracksNode.attributes.path;
this.arrTracks = [];
this.useVideoScrubberInstead = false;
var _loc1_ = 0;
while(_loc1_ < arrTrackNodes.length)
{
var _loc2_ = arrTrackNodes[_loc1_];
var objTrack = {};
objTrack.id = _loc1_;
if(_loc2_.nodeName == "video")
{
objTrack.type = "video";
objTrack.nodeData = _loc2_;
var _loc3_ = 0;
while(_loc3_ < _loc2_.childNodes.length)
{
if(_loc2_.childNodes[_loc3_].nodeName == "label")
{
objTrack.label = _loc2_.childNodes[_loc3_].firstChild.nodeValue;
}
_loc3_ = _loc3_ + 1;
}
this.useVideoScrubberInstead = true;
}
else
{
objTrack.type = "audio";
objTrack.file = strAudioTrackpath + _loc2_.attributes.file;
objTrack.label = _loc2_.firstChild.nodeValue;
}
arrTracks.push(objTrack);
_loc1_ = _loc1_ + 1;
}
var yPos = TRACKS_POS;
if(useVideoScrubberInstead)
{
yPos = TRACKS_POS - 20;
}
_loc1_ = 0;
while(_loc1_ < arrTracks.length)
{
arrTracks[_loc1_].trackMovie = attachMovie("trackListingMC","mTrack_" + _loc1_,++depth);
arrTracks[_loc1_].trackMovie._x = 9;
arrTracks[_loc1_].trackMovie.titleHolderMC.titleFF.htmlText = arrTracks[_loc1_].label;
arrTracks[_loc1_].trackMovie.titleHolderMC.titleFF.textColor = DEFAULT_COLOR50;
arrTracks[_loc1_].trackMovie.titleHolderMC.titleFF.relead();
arrTracks[_loc1_].trackMovie.id = _loc1_;
arrTracks[_loc1_].trackMovie._y = yPos;
yPos += arrTracks[_loc1_].trackMovie._height;
_loc1_ = _loc1_ + 1;
}
if(useVideoScrubberInstead == true)
{
mControls.gotoAndStop("video");
}
}
function parseLinkNode(linkNode)
{
trace("parseLinkNode()");
var _loc3_ = new Object();
var _loc2_ = linkNode.childNodes;
var _loc1_ = 0;
while(_loc1_ < _loc2_.length)
{
if(_loc2_[_loc1_].nodeName == "label")
{
_loc3_.label = _loc2_[_loc1_].firstChild.nodeValue;
}
else if(_loc2_[_loc1_].nodeName == "link")
{
_loc3_.link = _loc2_[_loc1_].firstChild.nodeValue;
}
_loc1_ = _loc1_ + 1;
}
if(_loc3_.label != null)
{
mc_buy_btn.txtLabel.htmlText = _loc3_.label;
mc_buy_btn.txtLabel.textColor = SECTION_COLOR50;
mc_buy_btn.txtLabel.autoSize = "left";
mc_buy_btn._y = 395 - mc_buy_btn._height + 7;
mc_buy_btn.linkBtn._width = mc_buy_btn.txtLabel._width + mc_buy_btn.arrowMC._width;
mc_buy_btn.linkBtn._height = mc_buy_btn.txtLabel._height;
mc_buy_btn.arrowMC._x = mc_buy_btn.txtLabel._x + mc_buy_btn.txtLabel._width - 2;
mc_buy_btn.navLink = false;
if(linkNode.attributes.link != null)
{
mc_buy_btn.link = linkNode.attributes.link;
mc_buy_btn.navLink = true;
}
else
{
mc_buy_btn.link = _loc3_.link;
}
}
else
{
mc_buy_btn._visible = false;
}
}
function onTrackComplete()
{
var _loc2_ = this;
trace("tracks_hybrid.onTrackComplete()");
var _loc1_ = currTrack.id + 1;
if(_loc1_ >= arrTracks.length)
{
_loc1_ = 0;
}
if(currTrack.type == "video")
{
trace(" - hiding video clip");
_parent.mcTL._visible = 0;
}
trace(" - next Track Id = " + _loc1_);
mControls.mc_controls.gotoAndStop("standby");
_loc2_.prevTrack = currTrack;
_loc2_.currTrack = arrTracks[_loc1_];
_loc2_.playTrack(currTrack.id);
}
function rewindCurrentTrack()
{
trace("tracks_hybrid.rewindCurrentTrack()");
if(currTrack.type == "audio")
{
snd.stop();
delete onEnterFrame;
}
setTrackPos(0);
mControls.mTimebar.setAmount(0);
}
function playCurrentTrack()
{
var _loc1_ = this;
trace("tracks_hybrid.playCurrentTrack()");
if(currTrack.type == "audio")
{
trace(" - playing audio track : " + currTrack.file);
mControls._visible = true;
mc_image._visible = true;
delete snd;
_loc1_.snd = new Sound(_loc1_);
snd.setVolume(55);
snd.onSoundComplete = function()
{
onTrackComplete();
};
snd.onLoad = function()
{
this.start();
};
snd.loadSound(currTrack.file,false);
_loc1_.onEnterFrame = function()
{
mControls.mTimebar.setAmount(snd.position / snd.duration);
};
}
else if(currTrack.type == "video")
{
trace(" - playing video track : " + currTrack.file);
mControls._visible = false;
mc_image._visible = false;
_parent.mcTL.loadMovie(Tardis.ENGINE_FOLDER + "modules/video.swf");
_parent.mcTL.onReady = function()
{
var _loc1_ = this;
trace("video.onReady()");
mc_image._visible = false;
_loc1_.nodeData = currTrack.nodeData;
_loc1_.init();
_loc1_.onTrackComplete = function()
{
trace("video.onTrackComplete()");
onTrackComplete();
};
};
}
trackPlaying = true;
mControls.mc_controls.gotoAndStop("active");
}
function playTrack(id)
{
var _loc3_ = this;
trace("tracks_hybrid.playTrack( " + id + " )");
var _loc2_ = 0;
while(_loc2_ < arrTracks.length)
{
var _loc1_ = _loc3_["mTrack_" + _loc2_];
if(_loc1_.id == id)
{
_loc1_.gotoAndStop("playing");
}
else
{
_loc1_.gotoAndStop("off");
}
_loc2_ = _loc2_ + 1;
}
if(prevTrack != null)
{
prevTrack.trackMovie.gotoAndStop("off");
if(prevTrack.type == "audio")
{
snd.stop();
delete snd;
}
else
{
_parent.mcTL.shutDownRemotely();
}
_loc3_.prevTrack = null;
}
_loc3_.prevTrack = _loc3_.currTrack = arrTracks[id];
currTrack.trackMovie.gotoAndStop("on");
playCurrentTrack();
}
function setTrackPos(pos)
{
trace("tracks_hybrid.setTrackPos( " + pos + " )");
if(currTrack.type == "audio")
{
currTrackPos = pos * (snd.duration / 1000);
}
else if(currTrack.type == "video")
{
}
if(trackPlaying)
{
unPauseTrack();
}
}
function pauseTrack()
{
trace("tracks_hybrid.pauseTrack()");
if(currTrack.type == "audio")
{
currTrackPos = snd.position / 1000;
snd.stop();
delete onEnterFrame;
}
trackPlaying = false;
}
function unPauseTrack()
{
trace("tracks_hybrid.unPauseTrack()");
if(currTrack.type == "audio")
{
snd.start(currTrackPos,1);
delete onEnterFrame;
this.onEnterFrame = function()
{
mControls.mTimebar.setAmount(snd.position / snd.duration);
};
}
trackPlaying = true;
}
function onDraggingScrubber()
{
trace("tracks_hybrid.onDraggingScrubber()");
if(currTrack.type == "audio")
{
snd.stop();
delete onEnterFrame;
}
}
function onScrubberMoved(mScrubber)
{
trace("tracks_hybrid.onScrubberMoved( " + mScrubber.getAmount() + " )");
var _loc1_ = mScrubber.getAmount();
if(_loc1_ >= 1)
{
_loc1_ = 0.99;
}
setTrackPos(_loc1_);
}
function trackOver(mTrack)
{
mTrack.gotoAndStop("over");
}
function trackOut(mTrack)
{
mTrack.gotoAndStop("off");
}
function trackUp(mTrack)
{
trace("tracks_hybrid.trackUp( " + mTrack._name + " )");
playTrack(mTrack.id);
}
function txtOver(mc)
{
mc.gotoAndStop("over");
Tardis.sideMenu.doOver(mc.link);
}
function txtOut(mc)
{
mc.gotoAndStop("off");
Tardis.sideMenu.doOut(mc.link);
}
function txtUp()
{
if(mc_buy_btn.navLink)
{
Tardis.sideMenu.doUp(mc_buy_btn.link);
}
else
{
Tardis.webPageOpen(mc_buy_btn.link,"_blank");
}
}
function doOver(num)
{
if(mc_buy_btn.link == num)
{
mc_buy_btn.gotoAndStop("over");
}
}
function doOut(num)
{
mc_buy_btn.gotoAndStop("off");
}
Links = {};
Tardis.sideMenu.EB.addListener(this);
_visible = false;
TRACKS_POS = 226;
depth = 0;
this.onUnload = function()
{
interrupt();
removeLinkListener();
};
TextField.prototype.relead = function()
{
this.autoSize = true;
};